package Servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.naming.NamingException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import EntityBeans.RichiestaAiuto;
import EntityBeans.RichiestaAmicizia;
import EntityBeans.UtenteRegistrato;
import Sessions.RecuperaDatiSessionRemote;
import Sessions.RichiestaAiutoSessionRemote;
import Sessions.RichiesteAmiciziaSessionRemote;

/**
 * Servlet implementation class RichiesteAmiciziaServlet
 */
public class RichiesteAmiciziaServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private RequestDispatcher d;   
    private GestoreContesto contesto;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RichiesteAmiciziaServlet() {
    	super();
        contesto = new GestoreContesto();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			eseguiRichiesta(request,response);
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
				try {
					eseguiRichiesta(request,response);
				} catch (NamingException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	}
	
	private void eseguiRichiesta(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, NamingException {
		RichiesteAmiciziaSessionRemote gestore = contesto.getGestore(RichiesteAmiciziaSessionRemote.class, "RichiesteAmiciziaSessionRemote");
		
		String idSessione = request.getParameter("idSessione");
		String idRichiesta = request.getParameter("idRichiesta");
		ArrayList<RichiestaAmicizia> richiesteAmicizia = gestore.richiesteAmicizia(idSessione);
		
		if(richiesteAmicizia==null || richiesteAmicizia.size()==0)
		{
			request.setAttribute("msg", "Non sono presenti rihcieste di amicizia  per l'utente selezionato");
			request.setAttribute("idSessione", idSessione);
			d=request.getRequestDispatcher("ErroreUtenteReg.jsp");
			d.forward(request, response);
		}
		else
		{
			request.setAttribute("numeroAmicizie", richiesteAmicizia.size());
		    request.setAttribute("msg", "Richieste di amicizia dell'utente:");
		    request.setAttribute("idSessione", idSessione);
			for(int i=0; i<richiesteAmicizia.size();i++)
			{
				request.setAttribute("idmandante"+i, richiesteAmicizia.get(i).getIdutentemandante());
				request.setAttribute("nomemandante"+i, gestore.ricercaNomeUtente(richiesteAmicizia.get(i).getIdutentemandante()));
				request.setAttribute("cognomemandante"+i, gestore.ricercaCognomeUtente(richiesteAmicizia.get(i).getIdutentemandante()));
				request.setAttribute("idricevente"+i, richiesteAmicizia.get(i).getIdutentericevente());
				request.setAttribute("nomericevente"+i, gestore.ricercaNomeUtente(richiesteAmicizia.get(i).getIdutentericevente()));
				request.setAttribute("cognomericevente"+i, gestore.ricercaCognomeUtente(richiesteAmicizia.get(i).getIdutentericevente()));
				
				
			}
			d=request.getRequestDispatcher("RichiesteAmicizia.jsp");
			d.forward(request, response);
		}
		
	}

}
